基于單片機的自然電場記錄器
2007/10/29 11:39:00
自然電場法是利用電化學作用在周圍產生的自然極化電場進行找礦、填圖和解決水文地質問題的一種被動源電法勘探方法[1]。采用電位觀測法是觀測自然電場的最常用的方式。傳統的測量自然電場儀器只能測量單通道信號,并且不能實現數據存儲和導出功能。本方案設計的自然電場記錄器目的在于實現對mV級的低頻自然電場信號的采集,并進行數據顯示、存儲、瀏覽,以及與PC機之間的通信。 1 硬件電路設計 對于微弱的自然電場信號,幅值處于數百微伏至數十毫伏之間,頻帶處于0.01—100Hz范圍內。為實現對mV級的低頻自然電場信號的采集、數據存儲顯示、用戶按鍵操作以及與PC機串口數據傳輸等功能,設計出相應的硬件電路模塊。硬件框圖如圖1所示,由DC/DC模塊、前置放大與低通模塊、A/D(AD7705)模數轉換電路、FLASH(AT45DB041)存儲模塊、LCD(LCM1602)顯示模塊和串口通信(MAX232)模塊六個模塊組成。
圖1 硬件原理框圖 自然電場信號在前置放大與濾波模塊先進行放大和抗混疊濾波,信號再進入A/D模數轉換模塊,AD7705在單片機設置的參數控制下工作,一次采集結束數據通過LCD顯示,用戶確認保存時AT89C51將數據寫入至FLASH中,最后通過串口將數據導出至PC機中。 DC/DC模塊實現將電池組電壓進行穩壓整流,轉換成電路所需的±5V工作電壓和+2.5V參考電壓。前放采用高精密儀表放大器INA2128,INA2128是一種低漂移、高增益、高帶寬、高共模抑制比、帶內部保護的雙通道儀表放大器[2]。外接一個電阻即可實現儀表放大,放大倍數可高達10000,很適合于微弱信號的處理。濾波部分實現為濾除工頻及高頻噪聲。濾波電路采用低功耗雙運算放大器OPA2650,組成陷波和低通電路。鍵盤模塊實現單片機掃描鍵盤響應用戶操作,實現用戶對采集過程的控制。LCD顯示模塊采用LCM1602液晶顯示模塊,支持5×7點陣和2×16字符顯示兩種模式,自帶西文字庫,背光亮度和顯示對比度可調。由液晶顯示屏和內置HD4470驅動器兩部分組成,單片機通過寫控制字方式訪問驅動器來實現對顯示屏的控制。串口通信模塊實現RS232電平與TTL電平的轉換,MAX232內含兩個接收器和兩個發送器,單電源供電,與PC機的串口通信。下面是對A/D(AD7705)模塊和FLASH(AT45DB041)存儲模塊的接口電路進行分析。 1.1 AD7705接口電路 AD7705是的兩通道、16位分辨率、內置可編程增益放大器(范圍1~128)、支持SPI接口、可變采樣率(20Hz、25Hz、100Hz、200Hz、50Hz、60Hz、250Hz、500Hz八個檔位)、低功耗(3V工作電壓功耗為1mW)的∑-△A/D轉換器,它適用于寬動態范圍測量、工業控制或工藝控制中的低頻信號的轉換。AD7705靈活的SPI接口使其能很容易地與大多數微處理器進行連接,很容易構成對采樣速率要求不高的數據采集系統。因此很適合低頻自然電場信號的測量。
圖2 AD7705接口電路 AD7705 的編程功能用片內寄存器的設置來控制。對這些寄存器的讀/ 寫操作通過器件的串行接口來完成。AD7705提供SPI接口,在單片機的IO資源有限的情況下串行數據傳輸方式利于節省IO資源,由于AT89C51自身不帶SPI接口,通過模擬SPI時序對AD7705片內寄存器進行讀寫操作,實現對AD7705工作方式的設定和數據的讀取。SPI接口由SCLK、DIN、DOUT、DRDY和CS組成,DIN 線用來向片內寄存器傳送數據,而DOUT 線用來訪問寄存器里的數據。SCLK是串行時鐘輸入,所有的數據傳輸都和SCLK信號有關。DRDY線作為狀態信號,以提示數據什么時候已準備好從寄存器讀數據。輸出寄存器中有新的數據時,DRDY 變為低電平。CS 是片選信號,用來選擇器件。 接口電路如圖2所示,本設計中CS已固定至低電平,單片機P1.4管腳提供時鐘SCLK,在上升沿將數據通過DIN數據流寫入寄存器。設定參數包括濾波同步、雙極性模式、緩沖模式、自校準模式、時鐘選擇、增益控制和采樣率設置等。設置好寄存器啟動采集,一次轉換結束DRDY管腳為低電平,產生中斷通知單片機將數據讀出,讀數據過程將由SCLK和DOUT配合實現,上升沿DOUT數據有效,單片機讀取一次轉換數據。兩通道循環采集,直到完成用戶設定的采集次數。為提高準確度和精度,采取變增益的辦法,變增益滿足不同的幅值信號;降低基準電壓;采用自校準模式。 1.2 FLASH(AT45DB041)接口電路 AT45DB041是ATMEL公司帶SPI接口的串行FLASH存儲器。傳統快閃存儲器往往利用多條地址線和并行接口來實現隨機存取數據,而AT45DB041則利用串行接口來實現連續存取數據。簡單的串行接口簡化了硬件電路,使線路板尺寸變小,成本降低,抗干擾能力增強,系統的可靠性得以提高。AT45DB041內部結構圖如圖3所示,存儲空間為其4Mbit,分為2048頁,每頁264個字節;除主存儲頁外,還包含2個SRAM數據緩沖區,每個區的容量均為264個字節。數據可以直接寫入主存, 也可以先寫入Buffer , 然后再將Buffer 的數據整個復制到主存的某一頁, 也可以在主存正處于編程時將數據寫入Buffer。本設計方案中一個站點采集雙通道,單通道采樣100次,一次2字節,一次電位差數據大約占用一頁,一次雙通道采集占用兩頁,所以一共可容納1024次記錄。
圖3 AT45DB041內部結構圖 通過單片機模擬SPI接口時序完成對AT45DB041中數據的讀寫操作,當芯片使能腳CS為低電平時,在時鐘輸入腳(SCK)的控制下,通過串行數據輸入腳(SI),便可將命令碼、主存儲頁或緩沖區地址碼串行輸入,然后即可寫入數據。讀數據過程不同在于寫入讀操作命令碼及數據地址后,單片機通過SO管腳讀出數據。需注意的是,所有的命令碼、地址、數據串行輸入時,均是高位在前,低位在后。當寫保護腳(WP)為低電平時,主存儲頁的前256頁不能寫入數據。當復位腳(RESET)變為低電平時,將中斷所有正在進行的讀操作,并將內部置成空閑狀態。一旦該腳變為高電平,即可對芯片進行正常的讀寫操作。 數據的讀出包括主存儲頁直接讀出、從主存儲頁讀取數據至緩沖區、從緩沖區讀數據、讀狀態寄存器等四種。除命令碼不同外,讀取的方法均大同小異,下面只介紹將從主存儲頁直接讀出數據的方法。主存儲頁讀允許用戶從2048主存儲頁的任一頁中讀取數據,在SCK 時鐘脈沖的控制下,先串行輸入命令碼(51H)、緊接著是4個保留位、然后是20 個地址位(即11個頁地址位和9個頁中數據起始地址位)、最后是32個無關位。4個保留位是用于將來擴展該芯片的容量而設置的,對于AT45DB041 可輸入4 個0,32個無關位用于初始化讀操作。數據通過SO腳串行輸出,在數據的讀出過程中,芯片使能腳必須保持低電平,當一頁數據的最后一個字節讀完后,會從該頁的第一個字節開始繼續讀取數據。當芯片使能腳(CS)由低電平變為高電平時,將終止數據的讀取,SO腳保持高阻態。 2 軟件程序設計
圖4 軟件設計框架圖 圖4描述了軟件設計的總體框架,儀器的軟件實現包括兩部分,單片機控制程序和上位機的通信數據預處理程序。單片機控制程序在KEILC51集成開發環境下進行,主要實現采集主程序、AD7705轉換控制程序、AT45DB041讀寫程序、鍵盤掃描程序、與上位機串口通信接發數據程序和LCD字符顯示程序。上位機軟件在VC環境下進行,通過與下位機的串口通信程序,將數據從儀器中導出,并實現數據瀏覽、極差校正、數據繪圖等自然電場數據預處理功能。 2.1 單片機程序 
圖5 采集主程序流程 這里舉例采集主程序[3]和串口通信程序[4]。采集主程序流程如圖5所示:初始化包括LCD顯示詢問用戶開始采集數據是否還是與導出數據;按下確定鍵則按預設的采集參數啟動采集,按取消鍵則與上位機進行通信導出數據;啟動采集后AD7705兩通道先后各采集100次,采集結束后求均值顯示自然電場值,提示用戶保存數據,按下確定數據保存至FLASH中,再詢問是否開始一次新的采集,按下確定鍵開始一次新的采集;按下取消鍵結束操作。 串口通信程序實現與PC機間傳輸數據功能,單片機串口設定為工作方式1,波特率設置為19200,8位數據位、無奇偶校驗。圖6所示,需要導出數據時,上電后用戶進入通信狀態等待PC機發送命令,當接收到命令申請串口中斷,一次從FLASH起始地址讀取十字節數據,發送至PC機,等待PC機的接收,上位機一次接收完成后,再向單片機發送命令,循環進行直到接收用戶預設的記錄點數為止。 
圖6 串口通信示意圖 3 測試數據與結論 3.1 野外實測數據 為驗證儀器的靈敏度和精確度,室內先進行雙通道的一致性測試和重復性測試,與標準信號源的對比。室內試驗通過后在內蒙古東烏旗道特蘇木西南(N 45°38´03.0",E 118°00´00.0")——(N 45°21´52.9",E 117°59´59.9")進行了點距為50米的600點測量,測線長度30Km。各個野外測量布站示意如圖7所示,一個站點采集兩通道△U1和△U2數據。 
圖7 野外測量布站示意圖 數據記錄未進行極差校正的測線剖面圖如圖8所示。 
圖8內蒙東烏旗地區3線自然電位觀測曲線 3.2 結論 自然電場記錄器硬件由DC/DC模塊、前置放大與低通模塊、A/D(AD7705)模數轉換電路、FLASH(AT45DB0









提交
查看更多評論